Platform Explorer / Nuxeo Platform 2025.27

Extension point routes

Documentation

Allows to register audit routes for log entry backend storage location.

A route is basically composed of a backend name and a list of events to forward to this backend.

Such routes also register the events to convert to log entries that will later be routed to backends.

A route can also be composed of a backend name and a list of predicates.

Such routes don't register events to convert to log entries, they only act at backend routing layer.

eventDocumentCategory

The events and predicates can be combined, they are computed as AND when routing log entries to backends. The OR combination is achieved by declaring several routes with the same backend. Keep in mind that event conversion is only done for events registered in live routes.

A route can be marked as non-live using the live="false" attribute. Non-live routes are excluded from the automatic ingestion path: they never receive produced entries, and the events they declare are not converted to log entries unless a live route declares them too. They are meant for administrative operations on existing entries, such as migration or purge.

Contribution Descriptors

  • Class: org.nuxeo.audit.service.extension.AuditRouteDescriptor

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-drive-core-2025.27.34.jar /OSGI-INF/nuxeodrive-listeners.xml
    <extension point="routes" target="org.nuxeo.audit.service.AuditComponent">
        <route name="default">
          <event name="rootRegistered"/>
          <event name="rootUnregistered"/>
        </route>
        <route name="nuxeoDriveVirtualEvents">
          <backend name="default"/>
          <predicate class="org.nuxeo.audit.service.route.CategoryLogEntryPredicate">
            <property name="category">NuxeoDrive</property>
          </predicate>
        </route>
      </extension>
  • nuxeo-invite-2025.27.34.jar /OSGI-INF/user-registration-contrib.xml
    <extension point="routes" target="org.nuxeo.audit.service.AuditComponent">
        <route name="default">
          <event name="registrationSubmitted"/>
          <event name="registrationAccepted"/>
          <event name="registrationValidated"/>
        </route>
      </extension>
  • nuxeo-platform-audit-core-2025.27.34.jar /OSGI-INF/audit-contrib.xml
    <extension point="routes" target="org.nuxeo.audit.service.AuditComponent">
        <documentation>
          Those default auditable events match Nuxeo core base events.
          <p/>
          If you are sending new Nuxeo core events and want them audited, this is the place to declare them NXAudit side.
        </documentation>
    
        <route name="default">
          <backend name="default"/>
          <!-- login events -->
          <event name="loginSuccess"/>
          <event name="loginFailed"/>
          <event name="logout"/>
          <!-- document event -->
          <event name="documentCreated"/>
          <event name="documentCreatedByCopy"/>
          <event name="documentDuplicated"/>
          <event name="documentMoved"/>
          <event name="documentRemoved"/>
          <event name="documentModified"/>
          <event name="documentLocked"/>
          <event name="documentUnlocked"/>
          <event name="documentSecurityUpdated"/>
          <event name="lifecycle_transition_event"/>
          <event name="documentCheckedIn"/>
          <event name="proxyRemoved"/>
          <event name="versionRemoved"/>
          <event name="documentProxyPublished"/>
          <event name="sectionContentPublished"/>
          <event name="documentRestored"/>
          <event name="download"/>
          <event name="documentTrashed"/>
          <event name="documentUntrashed"/>
          <event name="addedToCollection"/>
          <event name="removedFromCollection"/>
          <!-- blob events -->
          <event name="blobDigestUpdated"/>
          <event name="blobDigestSkipped"/>
          <!-- retention events -->
          <event name="retentionActiveChanged"/>
          <event name="afterMakeRecord"/>
          <event name="afterSetRetention"/>
          <event name="afterExtendRetention"/>
          <event name="retentionExpired"/>
          <event name="afterSetLegalHold"/>
          <event name="afterRemoveLegalHold"/>
          <!-- user and group events -->
          <event name="user_created"/>
          <event name="user_deleted"/>
          <event name="user_modified"/>
          <event name="group_created"/>
          <event name="group_deleted"/>
          <event name="group_modified"/>
          <event name="search"/>
        </route>
      </extension>
  • nuxeo-platform-publisher-2025.27.34.jar /OSGI-INF/publisher-audit-contrib.xml
    <extension point="routes" target="org.nuxeo.audit.service.AuditComponent">
        <route name="default">
          <event name="documentPublished"/>
          <event name="documentUnPublished"/>
          <event name="documentSubmitedForPublication"/>
          <event name="documentPublicationRejected"/>
          <event name="documentPublicationApproved"/>
          <event name="documentWaitingPublication"/>
        </route>
      </extension>
  • nuxeo-routing-core-2025.27.34.jar /OSGI-INF/routing-audit-contrib.xml
    <extension point="routes" target="org.nuxeo.audit.service.AuditComponent">
        <route name="default">
          <event name="auditLogRoute"/>
          <event name="workflowTaskAssigned"/>
          <event name="workflowTaskReassigned"/>
          <event name="workflowTaskCompleted"/>
          <event name="workflowCanceled"/>
          <event name="workflowTaskDelegated"/>
          <event name="afterWorkflowStarted"/>
          <event name="afterWorkflowFinish"/>
          <event name="beforeWorkflowCanceled"/>
          <event name="afterWorkflowTaskCreated"/>
          <event name="afterWorkflowTaskEnded"/>
          <event name="afterWorkflowTaskReassigned"/>
          <event name="afterWorkflowTaskDelegated"/>
        </route>
      </extension>